/*
 * Copyright 2008 Zoundry LLC, Inc.  All Rights Reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 */
package org.zoundry.gaedt.ui.builders;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.core.resources.IResource;

/**
 * A build queue used when performing a build.
 */
public class ZGaeBuildQueue
{
    /** The list of resources to build. */
    private List<IResource> mResources;
    /** The list of resource that were removed. */
    private List<IResource> mRemovedResources;

    /**
     * C'tor.
     */
    public ZGaeBuildQueue()
    {
        setResources(new ArrayList<IResource>());
        setRemovedResources(new ArrayList<IResource>());
    }

    /**
     * Add a resource to the resources list.
     *
     * @param aResource
     */
    public void addResource(IResource aResource)
    {
        getResources().add(aResource);
    }

    /**
     * Add a resource to the 'removed resources' list.
     *
     * @param aResource
     */
    public void addRemovedResource(IResource aResource)
    {
        getRemovedResources().add(aResource);
    }

    /**
     * @return the resources
     */
    public List<IResource> getResources()
    {
        return mResources;
    }

    /**
     * @param aResources the resources to set
     */
    protected void setResources(List<IResource> aResources)
    {
        mResources = aResources;
    }

    /**
     * @return the removedResources
     */
    public List<IResource> getRemovedResources()
    {
        return mRemovedResources;
    }

    /**
     * @param aRemovedResources the removedResources to set
     */
    protected void setRemovedResources(List<IResource> aRemovedResources)
    {
        mRemovedResources = aRemovedResources;
    }
}
